package com.ruoyi.training.mapper;

import java.util.List;
import com.ruoyi.training.domain.SatisfactionSurvey;
import com.ruoyi.training.dto.SatisfactionSurveyDto;
import org.apache.ibatis.annotations.Param;

/**
 * 满意度调查结果Mapper接口
 * 
 * @author lqx
 * @date 2025-11-11
 */
public interface SatisfactionSurveyMapper 
{
    /**
     * 查询满意度调查结果
     * 
     * @param satisfactionSurveyId 满意度调查结果主键
     * @return 满意度调查结果
     */
    public SatisfactionSurvey selectSatisfactionSurveyBySatisfactionSurveyId(String satisfactionSurveyId);

    /**
     * 查询满意度调查结果列表
     * 
     * @param satisfactionSurvey 满意度调查结果
     * @return 满意度调查结果集合
     */
    public List<SatisfactionSurvey> selectSatisfactionSurveyList(SatisfactionSurvey satisfactionSurvey);

    /**
     * 新增满意度调查结果
     * 
     * @param satisfactionSurvey 满意度调查结果
     * @return 结果
     */
    public int insertSatisfactionSurvey(SatisfactionSurvey satisfactionSurvey);

    /**
     * 修改满意度调查结果
     * 
     * @param satisfactionSurvey 满意度调查结果
     * @return 结果
     */
    public int updateSatisfactionSurvey(SatisfactionSurvey satisfactionSurvey);

    /**
     * 删除满意度调查结果
     * 
     * @param satisfactionSurveyId 满意度调查结果主键
     * @return 结果
     */
    public int deleteSatisfactionSurveyBySatisfactionSurveyId(String satisfactionSurveyId);

    /**
     * 批量删除满意度调查结果
     * 
     * @param satisfactionSurveyIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSatisfactionSurveyBySatisfactionSurveyIds(String[] satisfactionSurveyIds);

    /**
     * 通过班级id查询满意度填报人数
     * @param trainingClassId
     * @return
     */
    public int selectFillNumByClassId(String trainingClassId);

    /**
     * 通过班级id和查询参数查询满意度调查结果列表
     * lqx
     */
    public List<SatisfactionSurveyDto> selectSatisfactionSurveyListBySatisfactionSurveyDto(@Param("satisfactionSurveyDto") SatisfactionSurveyDto satisfactionSurveyDto);

    /**
     * 通过班级id和学员id查询满意度调查结果列表
     * lqx
     */
    SatisfactionSurvey selectSatisfactionSurveyListByByStudentIdAndClassId(@Param("trainingClassId")String trainingClassId,
                                                                           @Param("studentId")String studentId);

}
